home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-11-10 | 71.1 KB | 1,716 lines | [TEXT/MPS ] |
- {***********************************************************
-
- Created: Tuesday, August 17, 1993 4:37:24 PM
- OCETemplates.p
- Pascal Interface to the Macintosh Libraries
-
- Copyright Apple Computer, Inc. 1990-1993
- All rights reserved
-
- ***********************************************************}
-
-
- {$IFC UNDEFINED UsingIncludes}
- {$SETC UsingIncludes:= 0}
- {$ENDC}
-
- {$IFC NOT UsingIncludes}
- UNIT OCETemplates;
- INTERFACE
- {$ENDC}
-
- {$IFC UNDEFINED UsingOCETemplates}
- {$SETC UsingOCETemplates:= 1}
-
- {$I+}
- {$SETC OCETemplatesIncludes:= UsingIncludes}
- {$SETC UsingIncludes:= 1}
-
-
- {$IFC UNDEFINED UsingTypes}
- {$I $$Shell(PInterfaces)Types.p}
- {$ENDC}
-
- {$IFC UNDEFINED UsingEvents}
- {$I $$Shell(PInterfaces)Events.p}
- {$ENDC}
-
- {$IFC UNDEFINED UsingOCE}
- {$I OCE.p}
- {$ENDC}
-
- {$IFC UNDEFINED UsingOCEStandardMail}
- {$I OCEStandardMail.p}
- {$ENDC}
-
- {$SETC UsingIncludes:= OCETemplatesIncludes}
-
-
-
- {**********************************************************************************************}
- {******************************** Template Resource Constants: ********************************}
- {**********************************************************************************************}
-
-
- { Current versions of all the different template types: }
-
- CONST
- kDETAspectVersion = -976;
- kDETInfoPageVersion = -976;
- kDETKillerVersion = -976;
- kDETForwarderVersion = -976;
- kDETFileTypeVersion = -976;
-
-
- { "Normal" separation for template IDs within the file (this is just a suggestion; you can use whatever
- separation you like, so long as two separate templates don't have overlapping resources): }
- kDETIDSep = 250;
-
- { A few predefined base IDs (again, just suggestions): }
- kDETFirstID = (1000);
- kDETSecondID = (1000+kDETIDSep);
- kDETThirdID = (1000+2*kDETIDSep);
- kDETFourthID = (1000+3*kDETIDSep);
- kDETFifthID = (1000+4*kDETIDSep);
-
- { Templates consist of a set of associated resources, at constant offsets from a "base ID" set by the
- signature resource of the template. In the case of aspect templates, most of the resources in the
- template are accessible from the template as property default values. The property number is the same
- as the offset from the base ID of the resource. In describing the resources which make up templates,
- we give the type, the offset, and a description. For aspect templates, the offset is also the property #. }
-
- { All templates include the following resource fork resources:
-
- Type Offset Description
- ---- ------ -----------
- 'rstr' kDETTemplateName Contains the name of the template
-
- }
-
- kDETTemplateName = 0;
-
- { Aspects, info-pages, and forwarders include the following as well:
-
- Type Offset Description
- ---- ------ -----------
- 'rstr' kDETRecordType Contains the type of record this applies to
- 'rstr' kDETAttributeType Contains the type of attribute this applies to
- 'detn' kDETAttributeValueTag Contains the tag of the attribute values this applies to
-
- }
-
- kDETRecordType = 1;
- kDETAttributeType = 2;
- kDETAttributeValueTag = 3;
-
-
- { ************************************ Aspects }
-
- { In the case of aspects, property numbers and resource id offsets are the same. Therefore, some of the following
- defines are used for resource offsets, some are used for dynamically generated properties, and some are used for
- both (i.e., properties which may be dynamically generated, but if they aren't, then they're taken from the
- resource). Resource types are given in all cases below; even if there is no actual resource (for example in
- the case of kDETAspectName), it indicates the type for the dynamically generated property. A resource type of
- 'rstr' corresponds to a property type of kDETPrTypeString; type 'detn' corresponds to kDETPrTypeNumber; and
- 'detb' corresponds to kDETPrTypeBinary.
-
- Type Offset Description
- ---- ------ -----------
- 'deta' 0 Identifies the type of resource
- 'detc' kDETCode Is the code resource, if any is used
- 'ICN#' kDETAspectMainBitmap
- 'icl8' kDETAspectMainBitmap
- 'icl4' kDETAspectMainBitmap
- 'ics#' kDETAspectMainBitmap
- 'ics8' kDETAspectMainBitmap
- 'ics4' kDETAspectMainBitmap
- 'sicn' kDETAspectMainBitmap Is the icon suite to display for this item type (main aspect only)
- 'rstr' kDETAspectName Contains the name of the item (attribute main aspect only)
- 'rst#' kDETAspectCategory Contains the internal categories for the record type (main aspect only)
- 'rst#' kDETAspectExternalCategory Contains the external (user-visible) names which correspond to the categories in
- kDETAspectCategory; if this resource is not present, external names are taken from
- another template; if no other template provides an external name for a given internal
- category, the internal name is used as the external name (main aspect only)
- 'rstr' kDETAspectKind Is the item kind to display (main aspect only)
- 'detn' kDETAspectGender Is the gender of this kind of object for internationalization (main aspect only)
- 'rstr' kDETAspectWhatIs Is the string for balloon help when item is in sublist (main aspect only)
- 'rstr' kDETAspectAliasKind Is the item kind to display for aliases to this type of item (main aspect only)
- 'detn' kDETAspectAliasGender Is the gender of an alias to this kind of object for internationalization (main aspect only)
- 'rstr' kDETAspectAliasWhatIs Is the string for balloon help when an alias to the item is in sublist (main aspect only)
- 'rst#' kDETAspectBalloons Is a list of strings for balloon help; for each item in an info-page, it's
- property # times 2 is used as an index into this array; if the item is not editable,
- then the property # times 2 plus 1 is used
- 'rstr' kDETAspectNewMenuName Is the string to be used for the user to select new item creation; for records, the
- string is used as a menu entry in the Catalogs menu; for attributes, the string
- is used in a selection dialog invoked by an "Add..." button
- 'rstr' kDETAspectNewEntryName Is the name to be used for new records (with a digit appended if not unique)
- 'detb' kDETAspectNewValue Is the value to use when creating a new attribute value; the first four bytes
- is the tag; the rest is the attribute value contents
- 'detn' kDETAspectSublistOpenOnNew If true (non-zero), automatically open newly created entries (property can be set
- from a code resource, or via a default value in a resource)
- 'dett' kDETAspectLookup Is the attribute-to-property translation table
- 'rstr' kDETAspectDragInString Is a string describing the action of dragging into this aspect (if any)
- 'rstr' kDETAspectDragInVerb Is a single, short word that's the verb of the action (like "add" or "drop"; if
- there's any doubt, use "OK")
- 'rstr' kDETAspectDragInSummary Is a short phrase that describes the action, suitable to be included in a selection list
- 'rst#' kDETAspectRecordDragIn Is a list of type pairs; in each pair, the first is the type of a record which
- can be dragged into this aspect, and the second is the attribute type to store
- the reference in
- 'rst#' kDETAspectRecordCatDragIn Is a list of category/attribute type pairs; in each pair, the first is the
- category of records which can be dragged in, and the second is the type of
- attribute to place the alias in
- 'rst#' kDETAspectAttrDragIn Is a list of type triples; in each triple, the first is the record type which can be
- dragged from (or "" for any), the second is the attribute type which can be dragged
- in, and the third is the attribute type to store the new attribute in
- 'rst#' kDETAspectDragOut Is a list of attribute types which can be dragged out of this aspect (an 'rst#'
- resource with no entries means nothing can be dragged out; no 'rst#' resource means
- everything can be dragged out)
- 'detm' kDETAspectViewMenu Is a table to fill in the view menu from
- 'detp' kDETAspectReverseSort Is a table listing which properties to sort in reverse order
- 'detw' kDETAspectInfoPageCustomWindow Is a specification of a custom window size/placement & whether to use the
- page-selector (main aspect only)
- 'detv' kDETAspectInfoPageCustomWindow Is a view list which is common to all info-pages (main aspect only)
- }
-
- kDETAspectCode = 4;
- kDETAspectMainBitmap = 5;
- kDETAspectName = 6;
- kDETAspectCategory = 7;
- kDETAspectExternalCategory = 8;
- kDETAspectKind = 9;
- kDETAspectGender = 10;
- kDETAspectWhatIs = 11;
- kDETAspectAliasKind = 12;
- kDETAspectAliasGender = 13;
- kDETAspectAliasWhatIs = 14;
- kDETAspectBalloons = 15;
- kDETAspectNewMenuName = 16;
- kDETAspectNewEntryName = 17;
- kDETAspectNewValue = 18;
- kDETAspectSublistOpenOnNew = 19;
- kDETAspectLookup = 20;
- kDETAspectDragInString = 21;
- kDETAspectDragInVerb = 22;
- kDETAspectDragInSummary = 23;
- kDETAspectRecordDragIn = 24;
- kDETAspectRecordCatDragIn = 25;
- kDETAspectAttrDragIn = 26;
- kDETAspectAttrDragOut = 27;
- kDETAspectViewMenu = 28;
- kDETAspectReverseSort = 29;
- kDETAspectInfoPageCustomWindow = 30;
-
-
- { Properties: }
-
- kDETNoProperty = -1;
-
- { Each aspect has 250 attribute properties in this range: }
- kDETFirstLocalProperty = 0;
- kDETLastLocalProperty = (kDETFirstLocalProperty+249);
-
- { Developers should use property numbers starting at this point: }
- kDETFirstDevProperty = 40;
-
- { The following range provides constant numeric properties for use in patterns and comparisons (constant n is
- given by kDETFirstConstantProperty+n): }
- kDETFirstConstantProperty = 250;
- kDETLastConstantProperty = (kDETFirstConstantProperty+249);
-
- { To convert a number into a constant property, add this: }
- kDETConstantProperty = kDETFirstConstantProperty;
-
- kDETZeroProperty = (kDETConstantProperty+0);
- kDETOneProperty = (kDETConstantProperty+1);
- kDETFalseProperty = (kDETConstantProperty+0);
- kDETTrueProperty = (kDETConstantProperty+1);
-
- { The following apply to records, attributes, or aliases; they are the name and kind, as they appear in icon lists: }
- kDETPrName = 3050;
- kDETPrKind = 3051;
-
- { Access mask properties: }
- kDETDNodeAccessMask = 25825; { The DNode access mask }
- kDETRecordAccessMask = 25826; { The record access mask }
- kDETAttributeAccessMask = 25827; { The attribute access mask }
- kDETPrimaryMaskByBit = 25828; { A set of sixteen properties to access all bits of the primary mask }
-
- { See AOCE documentation for details definitions of each of these bits: }
-
- kDETPrimarySeeMask = kDETPrimaryMaskByBit;
- kDETPrimaryAddMask = (kDETPrimaryMaskByBit+1);
- kDETPrimaryDeleteMask = (kDETPrimaryMaskByBit+2);
- kDETPrimaryChangeMask = (kDETPrimaryMaskByBit+3);
- kDETPrimaryRenameMask = (kDETPrimaryMaskByBit+4);
- kDETPrimaryChangePrivsMask = (kDETPrimaryMaskByBit+5);
- kDETPrimaryTopMaskBit = (kDETPrimaryMaskByBit+15);
-
- { The following property is zero until we've completed the first catalog lookup; from then on it's 1 }
- kDETPastFirstLookup = 26550;
-
- { The following property is the page number; issuing a property command with this property will flip info-pages }
- kDETInfoPageNumber = 27050;
-
- { The value of the following properties contains the template number of the targeted aspect's template, and the
- currently open info-page (if any). These values can be used with kDETAspectTemplate and kDETInfoPageTemplate
- target selectors. }
- kDETAspectTemplateNumber = 26551;
- kDETInfoPageTemplateNumber = 26552;
-
- { Properties for property commands to deal with sublist items: }
- kDETOpenSelectedItems = 26553; { Open selected sublist items }
- kDETAddNewItem = 26554; { Add new sublist item }
- kDETRemoveSelectedItems = 26555; { Remove selected sublist items }
-
- { Property types are used to specify types of properties and conversions between types (zero and negative numbers
- are reserved for Apple; developer code resources can use positive numbers): }
- kDETPrTypeNumber = -1; { A number }
- kDETPrTypeString = -2; { A string }
- kDETPrTypeBinary = -3; { A binary block }
-
- { Rez-compatible tag definitions (•••these are the same as in OCE.h, but they're enums there and can't be rezed•••) }
- {
- #ifdef REZ
- #define typeRString 'rstr'
- #define typePackedDSSpec 'dspc'
- #define typeBinary 'bnry'
- #endif
- }
-
-
- { ************************************ Info-pages }
-
- { Info-pages include the following as well:
-
- Type Offset Description
- ---- ------ -----------
- 'deti' 0 Identifies the type of resource; see below for details on the contents
- 'rstr' kDETInfoPageName Is the name of the view to use in the page selection pop-up
- 'rstr' kDETInfoPageMainViewAspect Is the name of the aspect to use with the main page view
- 'rstr' kDETInfoPageMenuName Is the name of the catalogs menu ("Catalogs" if not present)
- 'detm' kDETInfoPageMenuEntries Are menu entries to go in the Catalogs menu
-
- }
-
- kDETInfoPageName = 4;
- kDETInfoPageMainViewAspect = 5;
- kDETInfoPageMenuName = 6;
- kDETInfoPageMenuEntries = 7;
-
-
- { ************************************ Views }
-
- { Flags: }
-
- kDETNoFlags = $0000; {0}
- kDETEnabled = $0001; {1 << 0} { Main view (non-sublist) field enabled }
-
- { The following flags make sense for items in a sublist only }
- kDETHilightIfSelected = $0001; {1 << 0} { Hilight view when entry is selected }
-
- { The following flags make sense for text views only }
- kDETNumericOnly = $0008; {1 << 3} { Only allow the user to enter digits }
- kDETMultiLine = $0010; {1 << 4} { Allow multiple lines in view }
- kDETDynamicSize = $0200; {1 << 9} { Don't draw box around text until user clicks in it, then auto-size it }
- kDETAllowNoColons = $0400; {1 << 10} { Don't allow the user to enter colons (convert ":"s to "-"s) }
-
- { The following flags are used for pop-up menus only }
- kDETPopupDynamicSize = $0100; {1 << 8} { Automatically resize pop-up based on contents }
-
- { The following flags are used for EditPicture views only }
- kDETScaleToView = $0100; {1 << 8} { Scale picture to view bounds rather than cropping }
-
- { Sizes for icons }
- kDETLargeIcon = 0;
- kDETSmallIcon = 1;
- kDETMiniIcon = 2;
-
- { Stolen from TextEdit.h }
- kDETLeft = 0;
- kDETCenter = 1;
- kDETRight = -1;
- kDETForceLeft = -2;
-
- { Flags for use within Box view type attributes - these are distinct from the flags above }
-
- kDETUnused = 0;
- kDETBoxTakesContentClicks = $0001; {1 << 0}
- kDETBoxIsRounded = $0002; {1 << 1}
- kDETBoxIsGrayed = $0004; {1 << 2}
- kDETBoxIsInvisible = $0008; {1 << 3}
-
- { The common font info }
-
- kDETApplicationFont = 1;
- kDETApplicationFontSize = 9;
- kDETAppFontLineHeight = 12;
-
- kDETSystemFont = 0;
- kDETSystemFontSize = 12;
- kDETSystemFontLineHeight = 16;
-
- kDETDefaultFont = 1;
- kDETDefaultFontSize = 9;
- kDETDefaultFontLineHeight = 12;
-
- { These were taken from QuickDraw.h (where they're enums and therefore unusable in resource definitions): }
- kDETNormal = 0;
- kDETBold = 1;
- kDETItalic = 2;
- kDETUnderline = 4;
- kDETOutline = 8;
- kDETShadow = $10;
- kDETCondense = $20;
- kDETExtend = $40;
-
- kDETIconStyle = -3; { Normal text style for regular sublist entries, italic text style for aliases }
-
- { Views menu: }
-
- kDETChangeViewCommand = 'view'; { Change the view; used especially in StaticCommandTextFromView sublist headers }
-
-
- { Info-page window sizes: }
-
- { Default record info-pages: }
- kDETRecordInfoWindHeight = 228;
- kDETRecordInfoWindWidth = 400;
-
- { Default attribute info-pages: }
- kDETAttributeInfoWindHeight = 250;
- kDETAttributeInfoWindWidth = 230;
-
- { Page identifying icon (for default info-page layout): }
- kDETSubpageIconTop = 8;
- kDETSubpageIconLeft = 8;
- kDETSubpageIconBottom = (kDETSubpageIconTop+32);
- kDETSubpageIconRight = (kDETSubpageIconLeft+32);
- (* #define kDETSubpageIconRect = (kDETSubpageIconTop, kDETSubpageIconLeft, kDETSubpageIconBottom, kDETSubpageIconRight) *)
-
- { The following rectangle can be used in a 'deti' with no sublist: }
- (* #define kDETNoSublistRect {0, 0, 0, 0} *)
-
-
-
- { ************************************ Killers }
-
- { Killers include the following as well:
-
- Type Offset Description
- ---- ------ -----------
- 'detk' 0 Identifies the type of resource; see below for details on the contents
- 'rst#' kDETKillerName Contains a list of template names to be killed
-
- }
-
- kDETKillerName = 1;
-
-
- { ************************************ Forwarders }
-
- { Forwarders include the following as well:
-
- Type Offset Description
- ---- ------ -----------
- 'detf' 0 Identifies the type of resource; see below for details on the contents
- 'rst#' kDETForwarderTemplateNames Contains a list of names of templates to forward to
-
- }
-
- kDETForwarderTemplateNames = 4;
-
-
-
- {*********************************************************************************}
- {******************************** Categories: ************************************}
- {*********************************************************************************}
-
- { Internal category names: }
-
- kDETCategoryAllItems = 'aoce All Items'; { Everything in or out of a category }
- kDETCategoryAddressItems = 'aoce Address Items'; { Anything that can be used to address something }
- kDETCategoryMisc = 'aoce Miscellaneous'; { Things that don't deserve their own category }
-
-
-
-
-
- {*********************************************************************************}
- {******************************** Code Resources: ********************************}
- {*********************************************************************************}
-
- { Target specification: }
-
- { Values of DETTargetSelector }
- kDETSelf = 0; { The "current" item }
- kDETSelfOtherAspect = 1; { Another aspect of the current item }
- kDETParent = 2; { The parent (i.e., the aspect we're in the sublist of, if any) of the current item }
- kDETSublistItem = 3; { The itemNumberth item in the sublist }
- kDETSelectedSublistItem = 4; { The itemNumberth selected item in the sublist }
- kDETDSSpec = 5; { The item specified by the packed DSSpec }
- kDETAspectTemplate = 6; { A specific aspect template (number itemNumber) }
- kDETInfoPageTemplate = 7; { A specific info-page template (number itemNumber) }
- kDETHighSelector = $F000; { Force type to be INTEGER }
-
- TYPE
- DETTargetSelector = INTEGER;
-
- DETTargetSpecification = RECORD
- selector: DETTargetSelector; { Target selection method (see above) }
- aspectName: RStringPtr; { The name of the aspect (kDETSelfOtherAspect, kDETSublistItem,
- kDETSelectedSublistItem, kDETDSSpec); nil for main aspect or none;
- always filled in for calls if there is an aspect, even if it's the main aspect }
- itemNumber: LONGINT; { Sublist index (kDETSublistItem & kDETSelectedSublistItem & kDETAspectTemplate);
- 1-based indexing }
- dsSpec: PackedDSSpecPtr; { DSSpec (kDETDSSpec only) }
- END;
-
-
- { Code resource calls and call-backs both return an OSType:
- kDETDidNotHandle (1) = used by template to say "I didn't handle it" (for calls only)
- noErr = function completed successfully
- any error = function failed, and here's why
- }
-
- CONST
- kDETDidNotHandle = 1;
-
- { Call-back functions:
-
- reqFunction Action
- ----------- ------
- kDETcmdBeep Call SysBeep; useful for testing that a code resource's calls/call-backs are working at all
-
- kDETcmdBusy Put up watch cursor and switch processes; user events elicit a beep
-
- kDETcmdChangeCallFors Change call-fors mask
-
- kDETcmdGetCommandSelectionCount Get the command selection count (for calls which have a command selection list)
- kDETcmdGetCommandItemN Get command selection item n (for calls which have a command selection list)
-
- kDETcmdOpenDSSpec PackedDSSpec open (can also be done via AppleEvents -- this is a short-cut)
-
- kDETcmdAboutToTalk About to talk to user: bring us to front, disable watch cursor, etc.
-
- kDETcmdUnloadTemplates Flush templates
-
- kDETcmdTemplateCounts Return number of aspect and info-page templates in system
-
- kDETcmdGetDSSpec Get the PackedDSSpec for this object
-
- kDETcmdSublistCount Return the count of the sublist items
- kDETcmdSelectedSublistCount Return the count of the selected sublist items
-
- kDETcmdRequestSync Request a sync-up of the aspect with the catalog
-
- kDETcmdBreakAttribute Break an attribute -- apply all applicable patterns to an attribute to generate properties
-
- kDETcmdGetTemplateFSSpec Get the FSSpec of the file containing the template
-
- kDETcmdGetOpenEdit Return the property of the view being edited (or kDETNoProperty if none)
- kDETcmdCloseEdit Close the current edit
-
- kDETcmdGetPropertyType Get a property type
-
- kDETcmdGetPropertyNumber Get a property, number format
- kDETcmdGetPropertyRString Get a property, RString format
- kDETcmdGetPropertyBinarySize Get a property, binary, return size
- kDETcmdGetPropertyBinary Get a property, binary format
-
- kDETcmdGetPropertyChanged Get a property changed flag
- kDETcmdGetPropertyEditable Get a property editable flag
-
- kDETcmdSetPropertyType Set a property type
-
- kDETcmdSetPropertyNumber Set a property, number format
- kDETcmdSetPropertyRString Set a property, RString format
- kDETcmdSetPropertyBinary Set a property, binary data & size
-
- kDETcmdSetPropertyChanged Set a property changed flag
- kDETcmdSetPropertyEditable Set a property editable flag
-
- kDETcmdDirtyProperty Dirty a property (notify other code resources of change)
-
- kDETcmdDoPropertyCommand Issue a property command
-
- kDETcmdAddMenu Add to the end of a dynamic menu
- kDETcmdRemoveMenu Remove a dynamic menu item
- kDETcmdMenuItemRString Get a dynamic menu item RString
-
- kDETcmdSaveProperty Force a save of a property -- apply all applicable patterns to write out the property
-
- kDETcmdGetCustomViewUserReference Get custom view user reference (as given in .r file)
- kDETcmdGetCustomViewBounds Get custom view current bounds
-
- kDETcmdGetResource Get a resource from a template
- }
-
-
- {Values of DETCallBackFunctions }
- kDETcmdSimpleCallback = 0;
- kDETcmdBeep = 1;
- kDETcmdBusy = 2;
- kDETcmdChangeCallFors = 3;
- kDETcmdGetCommandSelectionCount = 4;
- kDETcmdGetCommandItemN = 5;
- kDETcmdOpenDSSpec = 6;
- kDETcmdAboutToTalk = 7;
- kDETcmdUnloadTemplates = 8;
- kDETcmdTemplateCounts = 9;
-
- kDETcmdTargetedCallback = 1000;
- kDETcmdGetDSSpec = 1001;
- kDETcmdSublistCount = 1002;
- kDETcmdSelectedSublistCount = 1003;
- kDETcmdRequestSync = 1004;
- kDETcmdBreakAttribute = 1005;
- kDETcmdGetTemplateFSSpec = 1006;
- kDETcmdGetOpenEdit = 1007;
- kDETcmdCloseEdit = 1008;
-
- kDETcmdPropertyCallback = 2000;
- kDETcmdGetPropertyType = 2001;
- kDETcmdGetPropertyNumber = 2002;
- kDETcmdGetPropertyRString = 2003;
- kDETcmdGetPropertyBinarySize = 2004;
- kDETcmdGetPropertyBinary = 2005;
- kDETcmdGetPropertyChanged = 2006;
- kDETcmdGetPropertyEditable = 2007;
- kDETcmdSetPropertyType = 2008;
- kDETcmdSetPropertyNumber = 2009;
- kDETcmdSetPropertyRString = 2010;
- kDETcmdSetPropertyBinary = 2011;
- kDETcmdSetPropertyChanged = 2012;
- kDETcmdSetPropertyEditable = 2013;
- kDETcmdDirtyProperty = 2014;
- kDETcmdDoPropertyCommand = 2015;
- kDETcmdAddMenu = 2016;
- kDETcmdRemoveMenu = 2017;
- kDETcmdMenuItemRString = 2018;
- kDETcmdSaveProperty = 2019;
- kDETcmdGetCustomViewUserReference = 2020;
- kDETcmdGetCustomViewBounds = 2021;
- kDETcmdGetResource = 2022;
-
- kDETcmdHighCallback = $F0000000; { Force type to be LONGINT }
-
- TYPE
- DETCallBackFunctions = LONGINT;
-
-
- DETCallBackBlockHeader = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- END;
-
- DETCallBackBlockTargetedHeader = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- END;
-
- DETCallBackBlockPropertyHeader = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
- END;
-
-
- DETProtoCallBackBlock = DETCallBackBlockPropertyHeader;
-
-
- DETBeepBlock = DETCallBackBlockHeader;
-
-
- DETBusyBlock = DETCallBackBlockHeader;
-
-
- DETChangeCallForsBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- newCallFors: LONGINT; { -> New call-for mask }
- END;
-
-
- DETGetCommandSelectionCountBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
-
- count: LONGINT; { <- The number of items in the command selection list }
- END;
-
-
- CONST
- {Values of DETItemType }
- kDETHFSType = 0; { HFS item type }
- kDETDSType = 1; { Catalog Service item type }
- kDETMailType = 2; { Mail (letter) item type }
- kDETMoverType = 3; { Sounds, fonts, etc., from inside a suitcase or system file }
- kDETLastItemType = $F0000000; { Force it to be a LONGINT (C & C++ seem to disagree about the definition of $F000) }
-
- TYPE
- DETItemType = LONGINT;
-
-
-
- DETFSInfo = RECORD { FSSpec plus possibly interesting additional info }
- fileType: OSType; { File type }
- fileCreator: OSType; { File creator }
- fdFlags: INTEGER; { Finder flags }
- fsSpec: FSSpec; { FSSpec }
- END;
-
- DETFSInfoPtr = ^DETFSInfo;
-
- LetterSpecPtr = ^LetterSpec;
- LetterSpecHandle = ^LetterSpecPtr;
-
- DETGetCommandItemNBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
-
- itemNumber: LONGINT; { -> Item number to retrieve (1-based) }
- itemType: DETItemType; { -> Type of item to be returned (if we can interpret it as such) }
- CASE INTEGER OF
- 1: (fsInfo: ^DETFSInfoPtr); { <- FSSpec & info for item (caller must DisposHandle() when done) }
- 2: (ds: RECORD
- dsSpec: ^PackedDSSpecPtr; { <- DSSpec for item (caller must DisposHandle() when done) }
- refNum: INTEGER; { <- Refnum for returned address }
- identity: AuthIdentity; { <- Identity for returned address }
- END);
-
- 3: (dsSpec: ^PackedDSSpecPtr); { <- DSSpec for item (caller must DisposHandle() when done) }
- 4: (ltrSpec: LetterSpecHandle); { <- Letter spec for item (caller must DisposHandle() when done) }
- END;
-
-
- DETGetDSSpecBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- dsSpec: ^PackedDSSpecPtr; { <- Handle with result (caller must DisposHandle() when done) }
- refNum: INTEGER; { <- Refnum for address if PD }
- identity: AuthIdentity; { <- Identity for address }
- isAlias: BOOLEAN; { <- True if this entry is an alias }
- isRecordRef: BOOLEAN; { <- True if this entry is a record reference (reserved) }
- END;
-
-
- DETGetTemplateFSSpecBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- fsSpec: FSSpec; { <- FSSpec of template file }
- baseID: INTEGER; { <- Base ID of this template }
- aspectTemplateNumber: LONGINT; { <- The template number for this aspect template }
- END;
-
- DETGetOpenEditBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- viewProperty: INTEGER; { <- The property of the view being edited (or kNoProperty if none) }
- END;
-
- DETCloseEditBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- END;
-
- DETGetPropertyTypeBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyType: INTEGER; { <- The type of the property }
- END;
-
-
- DETGetPropertyNumberBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyValue: LONGINT; { <- The value of the property }
- END;
-
-
- DETGetPropertyRStringBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyValue: RStringHandle; { <- A handle containing the property (as an RString) (caller must DisposHandle() when done) }
- END;
-
-
- DETGetPropertyBinarySizeBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyBinarySize: LONGINT; { <- The size of the property as a binary block }
- END;
-
-
- DETGetPropertyBinaryBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyValue: Handle; { <- Handle with the value of the property (caller must DisposHandle() when done) }
- END;
-
-
- DETGetPropertyChangedBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyChanged: BOOLEAN; { <- True if the property is marked as changed }
- END;
-
-
- DETGetPropertyEditableBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyEditable: BOOLEAN; { <- True if the property can be edited by the user (if false, view will appear disabled) }
- END;
-
-
- DETSetPropertyTypeBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- newType: INTEGER; { -> New type for property (just sets type, does not convert contents) }
- END;
-
-
- DETSetPropertyNumberBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- newValue: LONGINT; { -> New value to set property to (and set type to number) }
- END;
-
-
- DETSetPropertyRStringBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- newValue: RStringPtr; { -> New value to set property to (and set type to RString) }
- END;
-
-
- DETSetPropertyBinaryBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- newValue: Ptr; { -> New value to set property to (and set type to binary) }
- newValueSize: LONGINT; { -> Size of new value }
- END;
-
-
- DETSetPropertyChangedBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyChanged: BOOLEAN; { -> Value to set changed flag on property to }
- END;
-
-
- DETSetPropertyEditableBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- propertyEditable: BOOLEAN; { -> Value to set editable flag on property to }
- END;
-
-
- DETDirtyPropertyBlock = DETCallBackBlockPropertyHeader;
-
-
- DETDoPropertyCommandBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- parameter: LONGINT; { -> Parameter of command }
- END;
-
-
- DETSublistCountBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- count: LONGINT; { <- The number of items in the current item's sublist }
- END;
-
-
- DETSelectedSublistCountBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- count: LONGINT; { <- The number of selected items in the current item's sublist }
- END;
-
-
- DETRequestSyncBlock = DETCallBackBlockTargetedHeader;
-
-
- DETAddMenuBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- name: ^RString; { -> Name of new menu item }
- parameter: LONGINT; { -> Parameter to return when this item is selected }
- addAfter: LONGINT; { -> Parameter of entry to add after, or -1 for add at end }
- END;
-
-
- DETRemoveMenuBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- itemToRemove: LONGINT; { -> Parameter of menu item to remove }
- END;
-
-
- DETMenuItemRStringBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- itemParameter: LONGINT; { -> Parameter of menu item to return string for }
- rString: RStringHandle; { <- Handle with the RString (caller must DisposHandle() when done) }
- END;
-
-
- DETOpenDSSpecBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
-
- dsSpec: PackedDSSpecPtr; { -> DSSpec of object to be opened }
- END;
-
-
- DETAboutToTalkBlock = DETCallBackBlockHeader;
-
-
- DETBreakAttributeBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
-
- breakAttribute: AttributePtr; { -> Attribute to parse }
- isChangeable: BOOLEAN; { -> True if the value can be changed by the user }
- END;
-
-
- DETSavePropertyBlock = DETCallBackBlockPropertyHeader;
-
-
- DETGetCustomViewUserReferenceBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- userReference: INTEGER; { <- User reference value, as specified in the .r file }
- END;
-
-
- DETGetCustomViewBoundsBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- bounds: Rect; { <- Bounds of the view }
- END;
-
-
- DETGetResourceBlock = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
- target: DETTargetSpecification; { The target for the request }
- property: INTEGER; { The property to apply the request to }
-
- resourceType: ResType; { -> Resource type }
- theResource: Handle; { <- The resource handle (caller must dispose when done) }
- END;
-
- DETTemplateCounts = RECORD
- reqFunction: DETCallBackFunctions; { Requested function }
-
- aspectTemplateCount: LONGINT; { <- Number of aspect templates in the system }
- infoPageTemplateCount: LONGINT; { <- Number of info-page templates in the system }
- END;
-
-
- DETUnloadTemplatesBlock = DETCallBackBlockHeader;
-
-
-
- DETCallBackBlock = RECORD
- CASE INTEGER OF
- 1: (protoCallBack: DETProtoCallBackBlock);
- 2: (beep: DETBeepBlock);
- 3: (busy: DETBusyBlock);
- 4: (changeCallFors: DETChangeCallForsBlock);
- 5: (getCommandSelectionCount: DETGetCommandSelectionCountBlock);
- 6: (getCommandItemN: DETGetCommandItemNBlock);
- 7: (getDSSpec: DETGetDSSpecBlock);
- 8: (getTemplateFSSpec: DETGetTemplateFSSpecBlock);
- 9: (getOpenEdit: DETGetOpenEditBlock);
- 10: (closeEdit: DETCloseEditBlock);
- 11: (getPropertyType: DETGetPropertyTypeBlock);
- 12: (getPropertyNumber: DETGetPropertyNumberBlock);
- 13: (getPropertyRString: DETGetPropertyRStringBlock);
- 14: (getPropertyBinarySize: DETGetPropertyBinarySizeBlock);
- 15: (getPropertyBinary: DETGetPropertyBinaryBlock);
- 16: (getPropertyChanged: DETGetPropertyChangedBlock);
- 17: (getPropertyEditable: DETGetPropertyEditableBlock);
- 18: (setPropertyType: DETSetPropertyTypeBlock);
- 19: (setPropertyNumber: DETSetPropertyNumberBlock);
- 20: (setPropertyRString: DETSetPropertyRStringBlock);
- 21: (setPropertyBinary: DETSetPropertyBinaryBlock);
- 22: (setPropertyChanged: DETSetPropertyChangedBlock);
- 23: (setPropertyEditable: DETSetPropertyEditableBlock);
- 24: (dirtyProperty: DETDirtyPropertyBlock);
- 25: (doPropertyCommand: DETDoPropertyCommandBlock);
- 26: (sublistCount: DETSublistCountBlock);
- 27: (selectedSublistCount: DETSelectedSublistCountBlock);
- 28: (requestSync: DETRequestSyncBlock);
- 29: (addMenu: DETAddMenuBlock);
- 30: (removeMenu: DETRemoveMenuBlock);
- 31: (menuItemRString: DETMenuItemRStringBlock);
- 32: (openDSSpec: DETOpenDSSpecBlock);
- 33: (aboutToTalk: DETAboutToTalkBlock);
- 34: (breakAttribute: DETBreakAttributeBlock);
- 35: (saveProperty: DETSavePropertyBlock);
- 36: (getCustomViewUserReference: DETGetCustomViewUserReferenceBlock);
- 37: (getCustomViewBounds: DETGetCustomViewBoundsBlock);
- 38: (getResource: DETGetResourceBlock);
- 39: (templateCounts: DETTemplateCounts);
- 40: (unloadTemplates: DETUnloadTemplatesBlock);
- END;
-
- DETCallBackBlockPtr = ^DETCallBackBlock;
-
-
- DETCallBack = ProcPtr;
- { FUNCTION DETCallBack(
- callBlockPtr: ^DETCallBlock; callBackBlockPtr: DETCallBackBlockPtr): OSErr; }
-
-
- { Call functions:
-
- reqFunction Action
- ----------- ------
- kDETcmdInit Called once when template is first loaded (good time to allocate private data); returns call-for list
- kDETcmdExit Called once when template is freed (good time to free private data)
-
- kDETcmdAttributeCreation New sublist attribute creation about to occur; this gives the template a chance to modify
- the value that's about to be created; sent to the template that will be used for
- the main aspect of the new entry
-
- kDETcmdDynamicForwarders Return a list of dynamically created forwarders
-
- kDETcmdInstanceInit Called once when instance of template is started (good time to allocate private instance data)
- kDETcmdInstanceExit Called once when instance is ended (good time to free private instance data)
-
- kDETcmdIdle Called periodically during idle times
-
- kDETcmdViewListChanged Called when the info-page view-list (list of enabled views) has changed
-
- kDETcmdValidateSave Validate save: about to save info-page, return noErr (or kDETDidNotHandle) if it's OK to do so
-
- kDETcmdDropQuery Drop query: return the appropriate operation for this drag; ask destination
- kDETcmdDropMeQuery Drop query: return the appropriate operation for this drag; ask dropee
-
- kDETcmdAttributeNew Attribute value new (return kDETDidNotHandle to let normal new processing occur)
- kDETcmdAttributeChange Attribute value change (return kDETDidNotHandle to let normal change processing occur)
- kDETcmdAttributeDelete Attribute value delete (return kDETDidNotHandle to let normal deletion occur); sent to the
- main aspect of the attribute that's about to be deleted
- kDETcmdItemNew Target item (record or attribute) has just been created
-
- kDETcmdOpenSelf Self open (return noErr to prevent opening; return kDETDidNotHandle to allow it)
-
- kDETcmdDynamicResource Return a dynamically created resource
-
- kDETcmdShouldSync Check if the code resource wants to force a sync (update data from catalog)
- kDETcmdDoSync Give code resource a chance to sync (read in and break all attributes)
-
- kDETcmdPropertyCommand Command received in the property number range (usually means a button's been pushed)
-
- kDETcmdMaximumTextLength Return maximum size for text form of property
-
- kDETcmdPropertyDirtied Property dirtied, need to redraw
-
- kDETcmdPatternIn Custom pattern element encountered on reading in an attribute
- kDETcmdPatternOut Custom pattern element encountered on writing out an attribute
-
- kDETcmdConvertToNumber Convert from template-defined property type to number
- kDETcmdConvertToRString Convert from template-defined property type to RString
- kDETcmdConvertFromNumber Convert from number to template-defined property type
- kDETcmdConvertFromRString Convert from RString to template-defined property type
-
- kDETcmdCustomViewDraw Custom view draw
- kDETcmdCustomViewMouseDown Custom view mouse down
-
- kDETcmdKeyPress Key press (used primarily to filter entry into EditText views)
- kDETcmdPaste Paste (used primarily to filter entry into EditText views)
-
- kDETcmdCustomMenuSelected Custom Catalogs menu selected
- kDETcmdCustomMenuEnabled Return whether custom Catalogs menu entry should be enabled
- }
-
-
- CONST
- { Values of DETCallFunctions }
- kDETcmdSimpleCall = 0;
- kDETcmdInit = 1;
- kDETcmdExit = 2;
- kDETcmdAttributeCreation = 3;
- kDETcmdDynamicForwarders = 4;
-
- kDETcmdTargetedCall = 1000;
- kDETcmdInstanceInit = 1001;
- kDETcmdInstanceExit = 1002;
- kDETcmdIdle = 1003;
- kDETcmdViewListChanged = 1004;
- kDETcmdValidateSave = 1005;
- kDETcmdDropQuery = 1006;
- kDETcmdDropMeQuery = 1007;
- kDETcmdAttributeNew = 1008;
- kDETcmdAttributeChange = 1009;
- kDETcmdAttributeDelete = 1010;
- kDETcmdItemNew = 1011;
- kDETcmdOpenSelf = 1012;
- kDETcmdDynamicResource = 1013;
- kDETcmdShouldSync = 1014;
- kDETcmdDoSync = 1015;
-
- kDETcmdPropertyCall = 2000;
- kDETcmdPropertyCommand = 2001;
- kDETcmdMaximumTextLength = 2002;
- kDETcmdPropertyDirtied = 2003;
- kDETcmdPatternIn = 2004;
- kDETcmdPatternOut = 2005;
- kDETcmdConvertToNumber = 2006;
- kDETcmdConvertToRString = 2007;
- kDETcmdConvertFromNumber = 2008;
- kDETcmdConvertFromRString = 2009;
- kDETcmdCustomViewDraw = 2010;
- kDETcmdCustomViewMouseDown = 2011;
- kDETcmdKeyPress = 2012;
- kDETcmdPaste = 2013;
- kDETcmdCustomMenuSelected = 2014;
- kDETcmdCustomMenuEnabled = 2015;
-
- kDETcmdHighCall = $F0000000; { Force the type to be long }
-
- TYPE
- DETCallFunctions = LONGINT;
-
-
- DETCallBlockHeader = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- END;
-
- DETCallBlockTargetedHeader = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- END;
-
- DETCallBlockPropertyHeader = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
- END;
-
- DETProtoCallBlock = DETCallBlockPropertyHeader;
-
-
- DETInitBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
-
- newCallFors: LONGINT; { <- New call-for mask }
- END;
-
-
- DETExitBlock = DETCallBlockHeader;
-
-
- DETInstanceInitBlock = DETCallBlockTargetedHeader;
-
-
- DETInstanceExitBlock = DETCallBlockTargetedHeader;
-
-
- DETInstanceIdleBlock = DETCallBlockTargetedHeader;
-
-
- DETPropertyCommandBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- parameter: LONGINT; { -> Parameter of command }
- END;
-
-
- DETMaximumTextLengthBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- maxSize: LONGINT; { <- Return the maximum number of characters the user can entry when property is edited in an EditText }
- END;
-
-
- DETViewListChangedBlock = DETCallBlockTargetedHeader;
-
-
- DETPropertyDirtiedBlock = DETCallBlockPropertyHeader;
-
-
- DETValidateSaveBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- errorString: RStringHandle; { <- Handle with error string if validation fails (callee must allocate handle, DE will DisposHandle() it) }
- END;
-
- { Valid commandIDs for DETDropQueryBlock and DETDropMeQueryBlock (in addition to property numbers): }
- CONST
- kDETDoNothing = 'xxx0';
- kDETMove = 'move';
- kDETDrag = 'drag';
- kDETAlias = 'alis';
-
- TYPE
- DETDropQueryBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- modifiers: INTEGER; { -> Modifiers at drop time (option/control/command/shift keys) }
- commandID: LONGINT; { <-> Command ID (kDETDoNothing, kDETMove, kDETDrag (copy), kDETAlias, or a property number) }
- destinationType: AttributeType; { <-> Type to convert attribute to }
- copyToHFS: BOOLEAN; { <- If true, object should be copied to HFS before being operated on, and deleted after }
- END;
-
-
- DETDropMeQueryBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- modifiers: INTEGER; { -> Modifiers at drop time (option/control/command/shift keys) }
- commandID: LONGINT; { <-> Command ID (kDETDoNothing, kDETMove, kDETDrag (copy), kDETAlias, or a property number) }
- destinationType: AttributeType; { <-> Type to convert attribute to }
- copyToHFS: BOOLEAN; { <- If true, object should be copied to HFS before being operated on, and deleted after }
- END;
-
-
- DETAttributeCreationBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
-
- parent: PackedDSSpecPtr; { -> The object within which the creation will occur }
- refNum: INTEGER; { -> Refnum for returned address (DSSpecs in PDs only) }
- identity: AuthIdentity; { -> The identity we're browsing as in the parent object }
- attrType: AttributeType; { <-> The type of the attribute being created }
- attrTag: AttributeTag; { <-> The tag of the attribute being created }
- value: Handle; { <-> The value to write (pre-allocated, resize as needed) }
- END;
-
-
- DETAttributeNewBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- parent: PackedDSSpecPtr; { -> The object within which the creation will occur }
- refNum: INTEGER; { -> Refnum for returned address (DSSpecs in PDs only) }
- identity: AuthIdentity; { -> The identity we're browsing as in the parent object }
- attrType: AttributeType; { <-> The type of the attribute being created }
- attrTag: AttributeTag; { <-> The tag of the attribute being created }
- value: Handle; { <-> The value to write (pre-allocated, resize as needed) }
- END;
-
-
- DETAttributeChangeBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- parent: PackedDSSpecPtr; { -> The object within which the creation will occur }
- refNum: INTEGER; { -> Refnum for returned address (DSSpecs in PDs only) }
- identity: AuthIdentity; { -> The identity we're browsing as in the parent object }
- attrType: AttributeType; { <-> The type of the attribute being changed }
- attrTag: AttributeTag; { <-> The tag of the attribute being changed }
- attrCID: AttributeCreationID; { <-> The CID of the attribute being changed }
- value: Handle; { <-> The value to write (pre-allocated, resize as needed) }
- END;
-
- DETAttributeDeleteBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- dsSpec: PackedDSSpecPtr; { -> The object which will be deleted }
- refNum: INTEGER; { -> Refnum for returned address (DSSpecs in PDs only) }
- identity: AuthIdentity; { -> The identity we're browsing as }
- END;
-
- DETItemNewBlock = DETCallBlockTargetedHeader;
-
- DETShouldSyncBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- shouldSync: BOOLEAN; { <- True if we should now sync with catalog }
- END;
-
- DETDoSyncBlock = DETCallBlockTargetedHeader;
-
- DETPatternInBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- elementType: LONGINT; { -> Element type from pattern }
- extra: LONGINT; { -> Extra field from pattern }
- attribute: AttributePtr; { -> The complete attribute }
- dataOffset: LONGINT; { <-> Offset to current (next) byte }
- bitOffset: INTEGER; { <-> Bit offset (next bit is ^fData >> fBitOffset++) }
- END;
-
-
- DETPatternOutBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- elementType: LONGINT; { -> Element type from pattern }
- extra: LONGINT; { -> Extra field from pattern }
- attribute: AttributePtr; { -> The attribute (minus the data portion) }
- data: Handle; { -> Data to be written (pre-allocated, resize and add at end) }
- dataOffset: LONGINT; { <-> Offset to next byte to write }
- bitOffset: INTEGER; { <-> Bit offset (if zero, handle will need to be resized to one more byte before write) }
- END;
-
-
- DETOpenSelfBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- modifiers: INTEGER; { -> Modifiers at open time (option/control/command/shift keys) }
- END;
-
-
- DETConvertToNumberBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- theValue: LONGINT; { <- The converted value to return }
- END;
-
-
- DETConvertToRStringBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- theValue: RStringHandle; { <- A handle with the converted value (callee must allocate handle, DE will DisposHandle() it) }
- END;
-
-
- DETConvertFromNumberBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- theValue: LONGINT; { -> The value to convert (result should be written direct to the property) }
- END;
-
-
- DETConvertFromRStringBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- theValue: RStringPtr; { -> The value to convert (result should be written direct to the property) }
- END;
-
-
- DETCustomViewDrawBlock = DETCallBlockPropertyHeader;
-
-
- DETCustomViewMouseDownBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- theEvent: ^EventRecord; { -> The original event record of the mouse-down }
- END;
-
-
- DETKeyPressBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- theEvent: ^EventRecord; { -> The original event record of the key-press }
- END;
-
-
- DETPasteBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
- property: INTEGER; { The property number the call refers to }
-
- modifiers: INTEGER; { -> Modifiers at paste time (option/control/command/shift keys) }
- END;
-
- DETCustomMenuSelectedBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- menuTableParameter: INTEGER; { -> The "property" field from the custom menu table }
- END;
-
-
- DETCustomMenuEnabledBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- menuTableParameter: INTEGER; { -> The "property" field from the custom menu table }
- enable: BOOLEAN; { <- Whether to enable the menu item }
- END;
-
-
- DETForwarderListItem = RECORD
- next: ^DETForwarderListPtr; { Pointer to next item, or nil }
- attributeValueTag: AttributeTag; { Tag of new templates (0 for none) }
- rstrs: PackedPathName; { Record type (empty if none), attrbute type (empty if none),
- list of template names to forward to }
- END;
-
- DETForwarderListPtr = ^DETForwarderListItem;
- DETForwarderListHandle = ^DETForwarderListPtr;
-
- DETDynamicForwardersBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
-
- forwarders: DETForwarderListHandle; { <- List of forwaders }
- END;
-
-
- DETDynamicResourceBlock = RECORD
- reqFunction: DETCallFunctions; { Requested function }
- callBack: DETCallBack; { Pointer to call-back routine }
- callBackPrivate: LONGINT; { Private data for the call-back routine }
- templatePrivate: LONGINT; { Private storage for use by code resource (stays for life of code resource,
- common to all invocations of code resource) }
- instancePrivate: LONGINT; { Private storage for use by code resource (separate for each item using the
- code resource) }
- target: DETTargetSpecification; { The target (originator) of the call, for targeted and property calls }
- targetIsMainAspect: BOOLEAN; { True if the target is the main aspect (even though it has a non-nil name) }
-
- resourceType: ResType; { -> The resource type being requested }
- propertyNumber: INTEGER; { -> The property number of the resource being requested }
- resourceID: INTEGER; { -> The resource ID (base ID + property number) of the resource }
- theResource: Handle; { <- The requested resource }
- END;
-
-
-
- DETCallBlock = RECORD
- CASE INTEGER OF
- 1: (protoCall: DETProtoCallBlock);
- 2: (init: DETInitBlock);
- 3: (exit: DETExitBlock);
- 4: (instanceInit: DETInstanceInitBlock);
- 5: (instanceExit: DETInstanceExitBlock);
- 6: (instanceIdle: DETInstanceIdleBlock);
- 7: (propertyCommand: DETPropertyCommandBlock);
- 8: (maximumTextLength: DETMaximumTextLengthBlock);
- 9: (viewListChanged: DETViewListChangedBlock);
- 10: (propertyDirtied: DETPropertyDirtiedBlock);
- 11: (validateSave: DETValidateSaveBlock);
- 12: (dropQuery: DETDropQueryBlock);
- 13: (dropMeQuery: DETDropMeQueryBlock);
- 14: (attributeCreationBlock: DETAttributeCreationBlock);
- 15: (attributeNew: DETAttributeNewBlock);
- 16: (attributeChange: DETAttributeChangeBlock);
- 17: (attributeDelete: DETAttributeDeleteBlock);
- 18: (itemNew: DETItemNewBlock);
- 19: (patternIn: DETPatternInBlock);
- 20: (patternOut: DETPatternOutBlock);
- 21: (shouldSync: DETShouldSyncBlock);
- 22: (doSync: DETDoSyncBlock);
- 23: (openSelf: DETOpenSelfBlock);
- 24: (convertToNumber: DETConvertToNumberBlock);
- 25: (convertToRString: DETConvertToRStringBlock);
- 26: (convertFromNumber: DETConvertFromNumberBlock);
- 27: (convertFromRString: DETConvertFromRStringBlock);
- 28: (customViewDraw: DETCustomViewDrawBlock);
- 29: (customViewMouseDown: DETCustomViewMouseDownBlock);
- 30: (keyPress: DETKeyPressBlock);
- 31: (paste: DETPasteBlock);
- 32: (customMenuSelected: DETCustomMenuSelectedBlock);
- 33: (customMenuEnabled: DETCustomMenuEnabledBlock);
- 34: (dynamicForwarders: DETDynamicForwardersBlock);
- 35: (dynamicResource: DETDynamicResourceBlock);
- END;
-
- DETCallBlockPtr = ^DETCallBlock;
-
- { Call-for list: }
-
- CONST
- kDETCallForOther = 1; { Call for things not listed below (also auto-enabled by DE if any of the below are enabled) }
- kDETCallForIdle = 2; { kDETcmdIdle }
- kDETCallForCommands = 4; { kDETcmdPropertyCommand, kDETcmdSelfOpen }
- kDETCallForViewChanges = 8; { kDETcmdViewListChanged, kDETcmdPropertyDirtied, kDETcmdMaximumTextLength }
- kDETCallForDrops = $10; { kDETcmdDropQuery, kDETcmdDropMeQuery }
- kDETCallForAttributes = $20; { kDETcmdAttributeCreation, kDETcmdAttributeNew, kDETcmdAttributeChange, kDETcmdAttributeDelete }
- kDETCallForValidation = $40; { kDETcmdValidateSave }
- kDETCallForKeyPresses = $80; { kDETcmdKeyPress and kDETcmdPaste }
- kDETCallForResources = $100; { kDETcmdDynamicResource }
- kDETCallForSyncing = $200; { kDETcmdShouldSync, kDETcmdDoSync }
- kDETCallForEscalation = $8000; { All calls escalated from the next lower level }
-
- kDETCallForNothing = 0; { None of the above }
- kDETCallForEverything = $FFFFFFFF; { All of the above }
-
- TYPE
- DETCall = ProcPtr;
- { FUNCTION DETCall(callBlockPtr: DETCallBlockPtr): OSErr; }
-
-
- { This following macro saves you from having to dig out the call-back pointer from the call block: }
-
- { #define CallBackDET(callBlockPtr, callBackBlockPtr) ((*callBlockPtr->protoCall.callBack)(callBlockPtr,callBackBlockPtr)) }
-
-
- { ************************************************************************************ }
- { ********************************* SAM Definitions: ********************************* }
- { ************************************************************************************ }
-
-
- { SAM Developers should use property numbers starting at this point: }
- CONST
- kSAMFirstDevProperty = kDETFirstDevProperty + 10;
-
-
- {
- SAM templates have additional resources/properties that are required
- for interaction with the AOCE Key Chain.
-
- Type Offset Description
- ---- ------ -----------
- 'rstr' kSAMAspectUserName The user name
- 'rstr' kSAMAspectKind The kind of SAM
- 'detn' kSAMAspectCannotDelete If 0, then the slot cannot be deleted
- 'sami' kSAMAspectSlotCreationInfo The info required to create a slot record
- }
-
- CONST
- kSAMAspectUserName = kDETFirstDevProperty + 1;
- kSAMAspectKind = kDETFirstDevProperty + 2;
- kSAMAspectCannotDelete = kDETFirstDevProperty + 3;
- kSAMAspectSlotCreationInfo = kDETFirstDevProperty + 4;
-
-
- { ************************************************************************************** }
- { ********************************* Admin Definitions: ********************************* }
- { ************************************************************************************** }
-
- kDETAdminVersion = -978;
-
- {$ENDC} { UsingOCETemplates }
-
- {$IFC NOT UsingIncludes}
- END.
- {$ENDC}
-